package com.example.demo.config;

import com.example.demo.support.*;
import lombok.AllArgsConstructor;
import lombok.Getter;

@Getter
@AllArgsConstructor
public enum IMCommand {
    // 添加账号命令
    ADD_ACCOUNT("im_open_login_svc", "account_import", IMAccountAddedResponse.class),
    // 批量添加账号命令
    ADD_MULTI_ACCOUNT("im_open_login_svc", "multiaccount_import", IMAccountMultiAddedResponse.class),
    // 检查账号状态
    CHECK_ACCOUNT("im_open_login_svc", "account_check", IMCheckAccountResponse.class),
    // 删除账号
    DELETE_ACCOUNT("im_open_login_svc", "account_delete", IMDeleteAccountResponse.class),
    // 失效用户userSig
    INVALIDATE_USER_SIG("im_open_login_svc", "kick", IMInvalidateUserSigResponse.class),
    // 获取用户在线状态
    QUERY_USER_STATE("openim", "querystate", IMQueryUserStateResponse.class),
    // 发送单聊消息
    SEND_MESSAGE("openim", "sendmsg", IMSendMessageResponse.class),
    // 获取用户信息
    QUERY_USER_INFO("profile", "portrait_get", IMQueryUserInfoResponse.class),
    // 设置用户信息
    SET_USER_INFO("profile", "portrait_set", IMSetUserInfoResponse.class),
    // 获取消息文件
    DOWNLOAD_HISTORIC_MESSAGES("open_msg_svc", "get_history", IMDownloadHistoricMessagesResponse.class),
    // 创建群组
    CREATE_GROUP("group_open_http_svc", "create_group", IMCreateGroupResponse.class),
    // 解散群组
    DESTROY_GROUP("group_open_http_svc", "destroy_group", IMDestroyGroupResponse.class),
    ;

    private String serviceName;

    private String command;

    private Class<? extends IMBaseResponse> responseType;

}
